abstract class Node {
    InternalNode father;
    int count;

    abstract boolean isNearUnder();

    abstract void merge(Node n);

    /**
     * 那假如没有父节点不是就傻逼了
     *
     * @return 本节点是父节点的第几个儿子
     */
    int getIndex() {
        int index = -1;
        InternalNode f = this.father;
        for (int i = 0; i < f.son.size(); i++) {
            if (f.son.get(i) == this) {
                //这个实现也太弱智了
                index = i;
                break;
            }
        }
        return index;
    }
}
